﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Threading;

namespace tekstoclipboard
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        Kontroler kopiarka;

        private void button1_Click(object sender, EventArgs e)
        {   
            if (kopiarka.PokazStatus.HasFlag(ThreadState.Unstarted))//.NET 4.0
            {
                MessageBox.Show(kopiarka.PokazStatus.ToString());
                MessageBox.Show("Watek nie dziala uruchamiamy");
                kopiarka.UruchomWatek();
            }
            else if (kopiarka.PokazStatus.HasFlag(ThreadState.WaitSleepJoin))
            {
                MessageBox.Show(kopiarka.PokazStatus.ToString());
                MessageBox.Show("Watek przerwany restart");
                kopiarka.ZrestartujWatek();
            }
            else
            {
                MessageBox.Show(kopiarka.PokazStatus.ToString());
                MessageBox.Show("Dziala przerywamy");
                kopiarka.PrzerwijWatek();
            }
            
        }
        private void Form1_Load(object sender, EventArgs e)
        {
            kopiarka = new Kontroler();
        }
    }
}

public enum Status
{
    Dziala = 0,
    NieDziala = 1,
    Przerwany = 2
}
class Kontroler
{
    Thread trd;

    public Kontroler()
    {
        StworzWatek();
    }
    void StworzWatek()
    {
        trd = new Thread(new ThreadStart(Watek.WpiszDoPamieci));
        trd.SetApartmentState(ApartmentState.STA);
        trd.IsBackground = true;
    }
    public void UruchomWatek()
    {
        trd.Start();
    }
    public void PrzerwijWatek()
    {
        trd.Abort();
    }
    public void ZrestartujWatek()
    {
        PrzerwijWatek();
        StworzWatek();
        UruchomWatek();
    }
        public ThreadState PokazStatus
    {
        get
        {
            return trd.ThreadState;
        }
    }
}
class Watek
{
    public static void WpiszDoPamieci()
    {
        for (int i = 100; i < 1110; i++)
        {
            Clipboard.SetText(String.Format("http://rapidshare.com/files/413903{0}/img-ttse.dvdscr.part{0}.rar", i));
            Thread.Sleep(500);
        }
    }
}
